package com.zn.util;

/**
 * Created by yinjiawei on 2018/8/8.
 */
public class CTPErrorCode {
    /**ctp:code**/
    private String ctpCode;
    private String msg;
    /**CTP:资金不足**/
    public static final CTPErrorCode INSUFFICIENT_MONEY=new CTPErrorCode("31","期货账户资金不足，请联系开户机构");
    /**CTP:平仓量超过持仓量**/
    public static final CTPErrorCode OVER_CLOSE_POSITION=new CTPErrorCode("30","平仓量超过持仓量");
    /**CTP:平今仓位不足**/
    public static final CTPErrorCode OVER_CLOSETODAY_POSITION=new CTPErrorCode("50","平今仓位不足");
    /**CTP:平昨仓位不足**/
    public static final CTPErrorCode OVER_CLOSEYESTERDAY_POSITION=new CTPErrorCode("51","平昨仓位不足");
    /**C++:客户持仓存在异常，请联系开户机构**/
    public static final CTPErrorCode CLOSE_POSITION_ERROR=new CTPErrorCode("4000","持仓存在异常，请联系开户机构");

    public String getCtpCode() {
        return ctpCode;
    }

    public void setCtpCode(String ctpCode) {
        this.ctpCode = ctpCode;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public CTPErrorCode() {}
    public CTPErrorCode(String ctpCode, String msg) {
        this.ctpCode = ctpCode;
        this.msg = msg;
    }

    public static String codeConvertMsg(String code){
        String msg="";
        switch (code){
            case "-1": msg="CTP:交易程序未知的异常";break;
            case "0": msg="CTP:正确";break;
            case "1": msg="CTP:不在已同步状态";break;
            case "2": msg="CTP:会话信息不一致";break;
            case "3": msg="CTP:不合法的登录";break;
            case "4": msg="CTP:用户不活跃";break;
            case "5": msg="CTP:重复的登录";break;
            case "6": msg="CTP:还没有登录";break;
            case "7": msg="CTP:还没有初始化";break;
            case "8": msg="CTP:前置不活跃";break;
            case "9": msg="CTP:无此权限";break;
            case "10": msg="CTP:修改别人的口令";break;
            case "11": msg="CTP:找不到该用户";break;
            case "12": msg="CTP:找不到该经纪公司";break;
            case "13": msg="CTP:找不到投资者";break;
            case "14": msg="CTP:原口令不匹配";break;
            case "15": msg="CTP:报单字段有误";break;
            case "16": msg="CTP:找不到合约";break;
            case "17": msg="CTP:合约不能交易";break;
            case "18": msg="CTP:经纪公司不是交易所的会员";break;
            case "19": msg="CTP:投资者不活跃";break;
            case "20": msg="CTP:投资者未在交易所开户";break;
            case "21": msg="CTP:该交易席位未连接到交易所";break;
            case "22": msg="CTP:报单错误：不允许重复报单";break;
            case "23": msg="CTP:错误的报单操作字段";break;
            case "24": msg="CTP:撤单已报送，不允许重复撤单";break;
            case "25": msg="CTP:撤单找不到相应报单";break;
            case "26": msg="CTP:报单已全成交或已撤销，不能再撤";break;
            case "27": msg="CTP:不支持的功能";break;
            case "28": msg="CTP:没有报单交易权限";break;
            case "29": msg="CTP:只能平仓";break;
            case "30": msg="CTP:平仓量超过持仓量";break;
            case "31": msg="CTP:资金不足";break;
            case "32": msg="CTP:主键重复";break;
            case "33": msg="CTP:找不到主键";break;
            case "34": msg="CTP:设置经纪公司不活跃状态失败";break;
            case "35": msg="CTP:经纪公司正在同步";break;
            case "36": msg="CTP:经纪公司已同步";break;
            case "37": msg="CTP:现货交易不能卖空";break;
            case "38": msg="CTP:不合法的结算引用";break;
            case "39": msg="CTP:交易所网络连接失败";break;
            case "40": msg="CTP:交易所未处理请求超过许可数";break;
            case "41": msg="CTP:交易所每秒发送请求数超过许可数";break;
            case "42": msg="CTP:结算结果未确认";break;
            case "43": msg="CTP:没有对应的入金记录";break;
            case "44": msg="CTP:交易所已经进入连续交易状态";break;
            case "45": msg="CTP:找不到预埋（撤单）单";break;
            case "46": msg="CTP:预埋（撤单）单已经发送";break;
            case "47": msg="CTP:预埋（撤单）单已经删除";break;
            case "48": msg="CTP:无效的投资者或者密码";break;
            case "49": msg="CTP:不合法的登录IP地址";break;
            case "50": msg="CTP:平今仓位不足";break;
            case "51": msg="CTP:平昨仓位不足";break;
            case "52": msg="CTP:经纪公司没有足够可用的条件单数量";break;
            case "53": msg="CTP:投资者没有足够可用的条件单数量";break;
            case "54": msg="CTP:经纪公司不支持条件单";break;
            case "55": msg="CTP:重发未知单经纪公司/投资者不匹配";break;
            case "56": msg="CTP:同步动态令牌失败";break;
            case "57": msg="CTP:动态令牌校验错误";break;
            case "58": msg="CTP:找不到动态令牌配置信息";break;
            case "59": msg="CTP:不支持的动态令牌类型";break;
            case "60": msg="CTP:用户在线会话超出上限";break;
            case "61": msg="CTP:该交易所不支持套利/做市商类型报单";break;
            case "62": msg="CTP:没有条件单交易权限";break;
            case "63": msg="CTP:客户端认证失败";break;
            case "64": msg="CTP:客户端未认证";break;
            case "65": msg="CTP:该合约不支持互换类型报单";break;
            case "66": msg="CTP:该期权合约只支持投机类型报单";break;
            case "67": msg="CTP:执行宣告错误，不允许重复执行";break;
            case "68": msg="CTP:重发未知执行宣告经纪公司/投资者不匹配";break;
            case "69": msg="CTP:只有期权合约可执行";break;
            case "70": msg="CTP:该期权合约不支持执行";break;
            case "71": msg="CTP:执行宣告字段有误";break;
            case "72": msg="CTP:执行宣告撤单已报送，不允许重复撤单";break;
            case "73": msg="CTP:执行宣告撤单找不到相应执行宣告";break;
            case "74": msg="CTP:执行仓位不足";break;
            case "75": msg="CTP:连续登录失败次数超限，登录被禁止";break;
            case "76": msg="CTP:非法银期代理关系";break;
            case "77": msg="CTP:无此功能";break;
            case "78": msg="CTP:发送报单失败";break;
            case "79": msg="CTP:发送报单操作失败";break;
            case "80": msg="CTP:交易所不支持的价格类型";break;
            case "81": msg="CTP:错误的执行类型";break;
            case "82": msg="CTP:无效的组合合约";break;
            case "83": msg="CTP:该合约不支持询价";break;
            case "84": msg="CTP:重发未知报价经纪公司/投资者不匹配";break;
            case "85": msg="CTP:该合约不支持报价";break;
            case "86": msg="CTP:报价撤单找不到相应报价";break;
            case "87": msg="CTP:该期权合约不支持放弃执行";break;
            case "88": msg="CTP:该组合期权合约只支持IOC";break;
            case "89": msg="CTP:打开文件失败";break;
            case "90": msg="CTP：查询未就绪，请稍后重试";break;
            case "91": msg="CTP：交易所返回的错误";break;
            case "92": msg="CTP:报价衍生单要等待交易所返回才能撤单";break;
            case "93": msg="CTP:找不到组合合约映射";break;
            case "94": msg="CTP:个股期权只支持投机或者备兑";break;
            case "95": msg="CTP:证券只支持投机开仓";break;
            case "96": msg="CTP:存在相同的合约编号需指定交易所";break;
            case "97": msg="CTP:找到多笔报单";break;
            case "98": msg="CTP:锁定仓位不足";break;
            case "99": msg="CTP:证券仓位不足";break;
            case "100": msg="CTP:该交易所不支持锁定";break;
            case "101": msg="CTP:用户在本系统没有报单权限";break;
            case "102": msg="CTP:系统缺少灾备标示号";break;
            case "103": msg="CTP:该交易所不支持批量撤单";break;
            case "104": msg="CTP:数量不正确";break;
            case "105": msg="CTP:价格不正确";break;
            case "106": msg="CTP:投资者限仓";break;
            case "107": msg="CTP:经纪公司限仓";break;
            case "108": msg="CTP:证券处置操作字段有误";break;
            case "109": msg="CTP:证券处置撤单已报送，不允许重复撤单";break;
            case "110": msg="CTP:证券处置撤单找不到相应证券处置";break;
            case "111": msg="CTP:投资者没有该交易指令权限";break;
            case "112": msg="CTP:投资者分级权限不足";break;
            case "113": msg="CTP:当前时间禁止询价";break;
            case "114": msg="CTP:当前价差禁止询价";break;
            case "115": msg="CTP:该合约未到行权日";break;
            case "116": msg="CTP:下单频率限制";break;
            case "117": msg="CTP:拆分数量超出限制";break;
            case "118": msg="CTP:转备兑只能填组合";break;
            case "119": msg="CTP:行权日前一天开始不允许申报价差组合";break;
            case "120": msg="CTP:组合数量超出持仓量";break;
            case "121": msg="CTP:跨式只支持卖";break;
            case "122": msg="CTP:交易所代码错误";break;
            case "123": msg="CTP:价格或数量错误";break;
            case "124": msg="CTP:找不到行情";break;
            case "125": msg="CTP:找不到保证金率";break;
            case "126": msg="CTP:找不到手续费率";break;
            case "127": msg="CTP:找不到产品资金映射表";break;
            case "128": msg="CTP:找不到资金账户";break;
            case "129": msg="CTP:找不到产品组";break;
            case "130": msg="CTP:找不到终端授权信息";break;
            case "131": msg="CTP:弱密码过期，请修改密码后重新登录";break;
            case "132": msg="CTP:用户名或密码错误";break;
            case "133": msg="CTP:该用户未开启短信验证码";break;
            case "134": msg="CTP:请求频率限制";break;
            case "135": msg="CTP:短信验证码不正确";break;
            case "136": msg="CTP:备兑只支持卖开或买平或认购";break;
            case "137": msg="CTP:需要新版api或连接旧端口";break;
            case "138": msg="CTP:需要连接新端口或使用旧版api";break;
            case "139": msg="CTP:当前时间禁止行权";break;
            case "140": msg="CTP:首次登陆，请修改密码后重新登录";break;
            case "141": msg="CTP:密码过期，请修改密码后重新登录";break;
            case "142": msg="CTP:新密码不允许与旧密码相同";break;
            case "143": msg="CTP:登录失败次数超限,IP被禁止";break;
            case "144": msg="CTP:IP在黑名单中";break;
            case "145": msg="CTP:经纪公司非交易时段";break;
            case "146": msg="CTP:当前时间禁止撤单";break;
            case "1000": msg="CTP:银期转账：发送机构代码错误";break;
            case "1001": msg="CTP:银期转账：取平台流水号错误";break;
            case "1002": msg="CTP:银期转账：不合法的转账银行";break;
            case "1003": msg="CTP:银期转账：已经开户";break;
            case "1004": msg="CTP:银期转账：未开户";break;
            case "1005": msg="CTP:银期转账：处理中";break;
            case "1006": msg="CTP:银期转账：交易超时";break;
            case "1007": msg="CTP:银期转账：找不到记录";break;
            case "1008": msg="CTP:银期转账：找不到被冲正的原始交易";break;
            case "1009": msg="CTP:银期转账：连接主机失败";break;
            case "1010": msg="CTP:银期转账：发送失败";break;
            case "1011": msg="CTP:银期转账：迟到应答";break;
            case "1012": msg="CTP:银期转账：冲正交易银行代码错误";break;
            case "1013": msg="CTP:银期转账：冲正交易银行账户错误";break;
            case "1014": msg="CTP:银期转账：冲正交易经纪公司代码错误";break;
            case "1015": msg="CTP:银期转账：冲正交易资金账户错误";break;
            case "1016": msg="CTP:银期转账：冲正交易交易金额错误";break;
            case "1017": msg="CTP:银期转账：数据库操作错误";break;
            case "1018": msg="CTP:银期转账：发送到交易系统失败";break;
            case "1019": msg="CTP:银期转账：没有签到";break;
            case "1020": msg="CTP:银期转账：已经签到";break;
            case "1021": msg="CTP:银期转账：金额或次数超限";break;
            case "1022": msg="CTP:银期转账：这一时间段不能转账";break;
            case "1023": msg="银行主机错";break;
            case "1024": msg="CTP:银期转账：银行已经冲正";break;
            case "1025": msg="CTP:银期转账：银行流水不存在";break;
            case "1026": msg="CTP:银期转账：机构没有签约";break;
            case "1027": msg="CTP:银期转账：存在转账，不能销户";break;
            case "1028": msg="CTP:银期转账：银行不支持冲正";break;
            case "1029": msg="CTP:银期转账：重复的银行流水";break;
            case "1030": msg="CTP:银期转账：转账系统忙，稍后再试";break;
            case "1031": msg="CTP:银期转账：MAC密钥正在同步";break;
            case "1032": msg="CTP:银期转账：资金账户已经登记";break;
            case "1033": msg="CTP:银期转账：银行账户已经登记";break;
            case "1034": msg="CTP:银期转账：重复的银行流水,重发成功";break;
            case "1035": msg="CTP:银期转账：该币种代码不支持";break;
            case "1036": msg="CTP:银期转账：MAC值验证失败";break;
            case "1037": msg="CTP:银期转账：不支持银行端发起的二级代理商转账和查询";break;
            case "1038": msg="CTP:银期转账：PIN密钥正在同步";break;
            case "1039": msg="CTP:银期转账：建行发起的二级代理商查询";break;
            case "1040": msg="CTP:银期转账：已经签退";break;
            case "1041": msg="CTP:银期转账：取密钥错误";break;
            case "1042": msg="CTP:银期转账：找不到预指定记录";break;
            case "1043": msg="CTP:银期转账：此账户未结息";break;
            case "1044": msg="CTP:银期转账：未找到期货日终文件";break;
            case "1045": msg="CTP:银期转账：已经预指定开户";break;
            case "1046": msg="CTP:银期转账：银行账户已经预指定";break;
            case "1047": msg="CTP:银期转账：银行账户已经预指定";break;
            case "1048": msg="CTP:银期转账：不允许机构户从证券端入金";break;
            case "2000": msg="CTP:该报盘未连接到银行";break;
            case "2001": msg="CTP:资金密码错误";break;
            case "2004": msg="CTP:银行流水号重复";break;
            case "2005": msg="CTP:报盘流水号重复";break;
            case "2006": msg="CTP:被冲正流水不存在(冲正交易)";break;
            case "2007": msg="CTP:原流水已冲正(冲正交易)";break;
            case "2008": msg="CTP:与原流水信息不符(冲正交易)";break;
            case "2009": msg="CTP:证件号码或类型错误";break;
            case "2011": msg="CTP:资金账户不存在";break;
            case "2012": msg="CTP:资金账户已经销户";break;
            case "2013": msg="CTP:该交易不能执行手工冲正";break;
            case "2014": msg="CTP:转帐金额错误";break;
            case "2015": msg="CTP:找不到汇率";break;
            case "999999": msg="CTP:等待银期报盘处理结果";break;
            case "3001": msg="CTP:银期换汇：取平台流水号错误";break;
            case "3002": msg="CTP:银期换汇：不合法的转账银行";break;
            case "3005": msg="CTP:银期换汇：处理中";break;
            case "3006": msg="CTP:银期换汇：交易超时";break;
            case "3007": msg="CTP:银期换汇：找不到记录";break;
            case "3009": msg="CTP:银期换汇：连接主机失败";break;
            case "3010": msg="CTP:银期换汇：发送失败";break;
            case "3011": msg="CTP:银期换汇：迟到应答";break;
            case "3017": msg="CTP:银期换汇：数据库操作错误";break;
            case "3019": msg="CTP:银期换汇：没有签到";break;
            case "3020": msg="CTP:银期换汇：已经签到";break;
            case "3021": msg="CTP:银期换汇：金额或次数超限";break;
            case "3022": msg="CTP:银期换汇：这一时间段不能换汇";break;
            case "3023": msg="CTP:银期换汇：银行主机错";break;
            case "3026": msg="CTP:银期换汇：机构没有签约";break;
            case "3030": msg="CTP:银期换汇：换汇系统忙，稍后再试";break;
            case "3035": msg="CTP:银期换汇：该币种代码不支持";break;
            case "3036": msg="CTP:银期换汇：银行帐号不正确";break;
            case "3037": msg="CTP:银期换汇：银行帐户余额不足";break;
            case "3038": msg="CTP:银期换汇：凭证号重复";break;
            /**自定义异常**/
            case "4000":msg="持仓存在异常，请联系开户机构";break;
            case "8193":msg="交易所连接中断，请联系开户机构";break;
            case "8194":msg="期权账户异常，请联系开户机构";break;
            case "7777":msg="报单通道拥挤，请重新下单";break;
            case "8888":msg="持仓额度已达上限，请稍后再试";break;
            case "9999":msg="当日开仓额度已达上限，请稍后再试";break;
            case "a200":msg="平台无响应订单定时结算";break;
            default:msg="交易错误码转换失败";break;
        }
        return msg;
    }


}
